package TP4;

import java.util.Scanner;

public class Prueba {

    public static void main(String[] args) {
        //System.out.println(GeneradorVectores.generarVector(4, 7));
        Scanner s = new Scanner(System.in);

        System.out.println("Ingrese la cantidad de valores a calcular:");
        int cantidad = s.nextInt();
        
        System.out.println("¿Desde dónde?");
        int desde = s.nextInt();
        
        System.out.println("¿Hasta dónde?");
        int hasta = s.nextInt();
        
        generarVectores(cantidad, desde, hasta);

    }

    private static void generarVectores(int cantidad) {
        System.out.println("Reloj\t\tRND\t¿Recuerda?\tRND\tPosibilidad\t\tContador definitivamente sí");
        
        if (cantidad <= 0) {
            System.out.println("Debe ingresar un valor mayor que cero.");
            return;
        }

        int contadorDefinitivamenteSi = 0;

        VectorEstado actual;

        for (int i = 0; i < (cantidad + 1); i++) {

            actual = new VectorEstado(i, contadorDefinitivamenteSi);

            if (actual.getContadorDefinitivamenteSi() > contadorDefinitivamenteSi) {
                contadorDefinitivamenteSi++;
            }

            System.out.println(actual);
        }
    }

    private static void generarVectores(int cantidad, int desde) {
        System.out.println("Reloj\t\tRND\t¿Recuerda?\tRND\tPosibilidad\t\tContador definitivamente sí");
        
        if (cantidad <= 0) {
            System.out.println("Debe ingresar un valor mayor que cero.");
            return;
        }

        int contadorDefinitivamenteSi = 0;

        VectorEstado actual = null;

        for (int i = 0; i < (cantidad + 1); i++) {

            actual = new VectorEstado(i, contadorDefinitivamenteSi);

            if (actual.getContadorDefinitivamenteSi() > contadorDefinitivamenteSi) {
                contadorDefinitivamenteSi++;
            }

            if (i >= desde) {
                System.out.println(actual);
            }
        }
        
        System.out.println("La probabilidad de que un individuo responda ''definitivamente sí'' a la pregunta sobre la posibilidad\nde compra es de " + String.format("%1$,.4f", (actual.getContadorDefinitivamenteSi()/(double)cantidad)) + "%.");
    }
    
    private static void generarVectores(int cantidad, int desde, int hasta) {
        System.out.println("Reloj\t\tRND\t¿Recuerda?\tRND\tPosibilidad\t\tContador definitivamente sí");
        
        if (cantidad <= 0) {
            System.out.println("Debe ingresar un valor mayor que cero.");
            return;
        } else if (desde > (cantidad-1)) {
            System.out.println("¡Desde un valor posible!");
            return;
        } else if (hasta > cantidad) {
            System.out.println("El valor hasta el que desea imprimir no puede ser mayor a la cantidad a calcular.");
            return;
        }

        int contadorDefinitivamenteSi = 0;

        VectorEstado actual = null;

        for (int i = 0; i < (cantidad + 1); i++) {

            actual = new VectorEstado(i, contadorDefinitivamenteSi);

            if (actual.getContadorDefinitivamenteSi() > contadorDefinitivamenteSi) {
                contadorDefinitivamenteSi++;
            }

            if (i >= desde && i <= hasta) {
                System.out.println(actual);
            }
        }
        
        System.out.println("La probabilidad de que un individuo responda ''definitivamente sí'' a la pregunta sobre la posibilidad\nde compra es de " + String.format("%1$,.4f", (actual.getContadorDefinitivamenteSi()/(double)cantidad)) + "%.");
    }
}


